package com.chen.service;

import com.chen.pojo.common.PageResult;
import com.chen.pojo.vo.OrderPartnerVo;
import com.chen.pojo.vo.ReportVo;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author chen
 * @version 1.0
 * @create_date 2025/8/20
 * 统计业务接口
 */
public interface ReportService {
    /**
     * 获取指定时间内的订单总量
     *
     * @param start 开始时间
     * @param end   结束时间
     * @return 结果
     */
    Long getOrderCount(LocalDateTime start, LocalDateTime end);

    /**
     * 获取指定时间内的订单总销售额
     *
     * @param start 开始时间
     * @param end   结束时间
     * @return 结果
     */
    BigDecimal getOrderAmount(LocalDateTime start, LocalDateTime end);

    /**
     * 根据地区汇总销售额数据(销售量分布)
     *
     * @param start 开始时间
     * @param end   结束时间
     * @return 结果
     */
    ReportVo getRegionCollectAmount(LocalDateTime start, LocalDateTime end);

    BigDecimal getTotalBill(LocalDateTime start, LocalDateTime end);

    PageResult<OrderPartnerVo> getPartnerCollect(Integer pageIndex, Integer pageSize, LocalDate start, LocalDate end, String partnerName);
}
